package com.ldkj.panzh.param;

import lombok.Data;

import java.util.List;

/**
 * 查询道闸（园区卡口）列表 参数
 *
 * @author qiancheng
 * @date 2025-11-19
 */
@Data
public class BarrierGateParam extends BaseParam {

    /**
     * 道闸名称（模糊查询）
     * 最大长度 32（中文按 UTF-8 字节计数）
     * 可选项
     */
    private String name;

    /**
     * 区域编号列表（regionIndexCode）
     * 可为空
     * 支持批量查询，最大 1000 个
     * 单个长度 <= 64 字节
     * 可从"查询区域列表 v2"接口获取
     */
    private List<String> regionIndexCodes;

    /**
     * 是否包含子区域
     * true：查询 regionIndexCodes 及其所有子区域
     * false：仅查询 regionIndexCodes
     */
    private Boolean isSubRegion;

    /**
     * 当前页码（默认值：1）
     */
    private Integer pageNo = 1;

    /**
     * 分页大小（默认值：1000，获取所有数据）
     * 范围：0 < pageSize <= 1000
     */
    private Integer pageSize = 1000;

    /**
     * 设备能力集（含设备上的智能能力）
     * 可选项
     */
    private List<String> capabilitySet;

    /**
     * 排序字段
     * 注意：排序字段必须是查询条件中的某一字段，否则接口报错
     */
    private String orderBy;

    /**
     * 排序方式
     * asc：升序
     * desc：降序
     */
    private String orderType;

    /**
     * 设备标识集合
     * 最大500个，从获取资源列表v2接口获取返回参数indexCode
     * 可选项
     */
    private List<String> indexCodes;

    /**
     * 设备在线状态筛选
     * "1"-在线，"0"-离线，"-1"-未检测
     * 可选项
     */
    private String status;

    /**
     * 区域id
     * 可通过区域信息接口获取
     * 可选项
     */
    private String regionId;

    /**
     * 设备类型（必填）
     * 参考附录A.88 停车场网管资源类型
     * 如：cross（卡口）、pmsEntrance（出入口）等
     * 默认值：cross
     */
    private String resourceType;

    /**
     * 是否包含下级区域中的资源数据
     * "1"包含，"0"不包含
     * 若regionId为空，则该参数不起作用
     * 可选项
     */
    private String includeSubNode;
}
